/****************************************************/
/* Project Name:预约信息管理                             * / 
/* File Name:TdcReservationDao              */ 
/* Date:2017年3月20日下午5:59:12            */ 
/* Description:预约信息管理的预约信息DAO接口       */
 /****************************************************/ 
package com.thinkgem.jeesite.modules.tdc.reservation.dao;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.thinkgem.jeesite.common.persistence.CrudDao;
import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
import com.thinkgem.jeesite.modules.tdc.department.entity.TdcDepartment;
import com.thinkgem.jeesite.modules.tdc.reservation.entity.TdcReservation;
import com.thinkgem.jeesite.modules.tdc.room.entity.TdcRoom;
import com.thinkgem.jeesite.modules.tdc.times.entity.TdcTimes;

/**
 * 预约信息DAO接口
 * @author 孟朋朋
 * @version 2017-03-20
 */
@MyBatisDao
public interface TdcReservationDao extends CrudDao<TdcReservation> {

	/**
	 * getMaxBespeakNumber:(获取当前预约信息表里的最大的预约编号)
	 * @return 返回当前数据库中的最大的预约编号
	 */
     public	String getMaxBespeakNumber();
	
	/**
	 * 
	 * findAllDeptList:(得到所有部门名)
	 * 
	 * @return 返回部门信息List集合
	 */
	
	public List<TdcDepartment> findAllDeptList();
	/**
	 * 
	 * todayCount:(当天预约总量)
	 * 
	 * @return 返回当天预约总量
	 */
	
	public int todayCount();
	/**
	 * 
	 * arrivedCount:(当天已到数量)
	 * 
	 * @return 返回当天已到数量
	 */
	
	public int arrivedCount();
	/**
	 * 
	 * periodList:(时间段查询)
	 * 
	 * @return 返回预约信息集合
	 */
	
	public List<TdcReservation> periodList();
	/**
	 * 根据 预约编号查询相关的预约信息
	 * @param bespeakNumber： 预约编号
	 * @return 返回相关的预约信息对象
	 */
	public TdcReservation getByBespeakNumber(String bespeakNumber);
	/**
	 * 
	 * findRoomList:(找到所有合适的房间)
	 * 
	 * @param roomType:房间类型
	 * @param roomStatus：房间状态
	 * @return 返回合适房间的集合
	 */
	
	public List<TdcRoom> findRoomList(@Param(value="roomType") String roomType,@Param(value="roomStatus") String roomStatus);
	/**
	 * 
	 * updateStatus:(更新预约状态)
	 * 
	 * @param bespeakRoom:预约房间号
	 * @param bespeakStatus：预约状态
	 * @param bespeakNumber：预约编号
	 * @return 返回更新成功或失败
	 */
	public boolean  updateStatus(@Param(value="bespeakRoom") String bespeakRoom,@Param(value="bespeakStatus") String bespeakStatus,@Param(value="bespeakNumber") String bespeakNumber);
	/**
	 * 
	 * updateRoomStatus:(更新房间状态)
	 * 
	 * @param roomStatus：房间状态
	 * @param roomNumber：房间编号
	 * @return 返回更新成功或失败
	 */
	public boolean updateRoomStatus(@Param(value="roomStatus") String roomStatus,@Param(value="roomNumber") String roomNumber);
	/**
	 * 
	 * findTdcTimesList:(根据星期找到时间配置)
	 * 
	 * @param theWeek：星期
	 * @return 返回星期
	 */
	public TdcTimes findTdcTimes(@Param(value="theWeek") String theWeek);
	/**
	 * 
	 * findCountAm:(获取当天上下午预约数量)
	 * 
	 * @param bespeakStart
	 * @param bespeakEnd
	 * @return 返回当天上下午预约数量
	 */
	public int findCountAm(@Param(value="start") String start,@Param(value="end") String end);
	
}